package generator.domain;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import javax.validation.constraints.NotNull;

import java.io.Serializable;

import java.util.Date;
import io.swagger.annotations.ApiModelProperty;
import org.hibernate.validator.constraints.Length;

/**
* 互动问题的回答或评论
* @TableName interaction_reply
*/
public class InteractionReply implements Serializable {

    /**
    * 互动问题的回答id
    */
    @NotNull(message="[互动问题的回答id]不能为空")
    @ApiModelProperty("互动问题的回答id")
    private Long id;
    /**
    * 互动问题问题id
    */
    @NotNull(message="[互动问题问题id]不能为空")
    @ApiModelProperty("互动问题问题id")
    private Long questionId;
    /**
    * 回复的上级回答id
    */
    @ApiModelProperty("回复的上级回答id")
    private Long answerId;
    /**
    * 回答者id
    */
    @NotNull(message="[回答者id]不能为空")
    @ApiModelProperty("回答者id")
    private Long userId;
    /**
    * 回答内容
    */
    @NotBlank(message="[回答内容]不能为空")
    @Size(max= 255,message="编码长度不能超过255")
    @ApiModelProperty("回答内容")
    @Length(max= 255,message="编码长度不能超过255")
    private String content;
    /**
    * 回复的目标用户id
    */
    @ApiModelProperty("回复的目标用户id")
    private Long targetUserId;
    /**
    * 回复的目标回复id
    */
    @ApiModelProperty("回复的目标回复id")
    private Long targetReplyId;
    /**
    * 评论数量
    */
    @NotNull(message="[评论数量]不能为空")
    @ApiModelProperty("评论数量")
    private Integer replyTimes;
    /**
    * 点赞数量
    */
    @NotNull(message="[点赞数量]不能为空")
    @ApiModelProperty("点赞数量")
    private Integer likedTimes;
    /**
    * 是否被隐藏，默认false
    */
    @NotNull(message="[是否被隐藏，默认false]不能为空")
    @ApiModelProperty("是否被隐藏，默认false")
    private Boolean hidden;
    /**
    * 是否匿名，默认false
    */
    @NotNull(message="[是否匿名，默认false]不能为空")
    @ApiModelProperty("是否匿名，默认false")
    private Boolean anonymity;
    /**
    * 创建时间
    */
    @NotNull(message="[创建时间]不能为空")
    @ApiModelProperty("创建时间")
    private Date createTime;
    /**
    * 更新时间
    */
    @NotNull(message="[更新时间]不能为空")
    @ApiModelProperty("更新时间")
    private Date updateTime;

    /**
    * 互动问题的回答id
    */
    private void setId(Long id){
    this.id = id;
    }

    /**
    * 互动问题问题id
    */
    private void setQuestionId(Long questionId){
    this.questionId = questionId;
    }

    /**
    * 回复的上级回答id
    */
    private void setAnswerId(Long answerId){
    this.answerId = answerId;
    }

    /**
    * 回答者id
    */
    private void setUserId(Long userId){
    this.userId = userId;
    }

    /**
    * 回答内容
    */
    private void setContent(String content){
    this.content = content;
    }

    /**
    * 回复的目标用户id
    */
    private void setTargetUserId(Long targetUserId){
    this.targetUserId = targetUserId;
    }

    /**
    * 回复的目标回复id
    */
    private void setTargetReplyId(Long targetReplyId){
    this.targetReplyId = targetReplyId;
    }

    /**
    * 评论数量
    */
    private void setReplyTimes(Integer replyTimes){
    this.replyTimes = replyTimes;
    }

    /**
    * 点赞数量
    */
    private void setLikedTimes(Integer likedTimes){
    this.likedTimes = likedTimes;
    }

    /**
    * 是否被隐藏，默认false
    */
    private void setHidden(Boolean hidden){
    this.hidden = hidden;
    }

    /**
    * 是否匿名，默认false
    */
    private void setAnonymity(Boolean anonymity){
    this.anonymity = anonymity;
    }

    /**
    * 创建时间
    */
    private void setCreateTime(Date createTime){
    this.createTime = createTime;
    }

    /**
    * 更新时间
    */
    private void setUpdateTime(Date updateTime){
    this.updateTime = updateTime;
    }


    /**
    * 互动问题的回答id
    */
    private Long getId(){
    return this.id;
    }

    /**
    * 互动问题问题id
    */
    private Long getQuestionId(){
    return this.questionId;
    }

    /**
    * 回复的上级回答id
    */
    private Long getAnswerId(){
    return this.answerId;
    }

    /**
    * 回答者id
    */
    private Long getUserId(){
    return this.userId;
    }

    /**
    * 回答内容
    */
    private String getContent(){
    return this.content;
    }

    /**
    * 回复的目标用户id
    */
    private Long getTargetUserId(){
    return this.targetUserId;
    }

    /**
    * 回复的目标回复id
    */
    private Long getTargetReplyId(){
    return this.targetReplyId;
    }

    /**
    * 评论数量
    */
    private Integer getReplyTimes(){
    return this.replyTimes;
    }

    /**
    * 点赞数量
    */
    private Integer getLikedTimes(){
    return this.likedTimes;
    }

    /**
    * 是否被隐藏，默认false
    */
    private Boolean getHidden(){
    return this.hidden;
    }

    /**
    * 是否匿名，默认false
    */
    private Boolean getAnonymity(){
    return this.anonymity;
    }

    /**
    * 创建时间
    */
    private Date getCreateTime(){
    return this.createTime;
    }

    /**
    * 更新时间
    */
    private Date getUpdateTime(){
    return this.updateTime;
    }

}
